/**
 * Clase con operador que tiene una pila con numeros enteros y las opera
 * @author andrew
 *
 */
public class Operador {
	////////////////////////////////////////////////////////////////////////////////
	private VectorStack<Double> opand;
	////////////////////////////////////////////////////////////////////////////////
	/**
	 * Crea un nuevo operador
	 * @param opand
	 */
	public Operador() {
		opand = new VectorStack<Double>();
	}
	
	/**
	 * Agrega un nueov numero a la pila
	 * @param opand
	 */
	public void agregar(double opand){
		this.opand.push(opand);
	}
	
	/**
	 * Suma los dos últimos operandos de la pila y guarda el resultado en la misma
	 * @return resultado de la suma
	 */
	public double sumar() {
		double result=opand.pop()+opand.pop();
		opand.push(result);
		return result;
	}
	
	/**
	 * Resta el penúltimo operando de la pila al último operando y guarda el resultado en la misma
	 * @return resultado de la resta
	 */
	public double restar(){
		double result=opand.pop()-opand.pop();
		opand.push(result);
		return result;
	}
	
	/**
	 * Multiplica los dos últimos operandos de la pila y guarda el resultado en la misma
	 * @return resultado de la multiplicacion
	 */
	public double mult(){
		double result=opand.pop()*opand.pop();
		opand.push(result);
		return result;
	}
	
	/**
	 * Divide el último operando de la pila entre el penúltimo operando y guarda el resultado en la misma
	 * @return resultado de la división
	 */
	public double div(){
		double result=opand.pop()/opand.pop();
		opand.push(result);
		return result;
	}
	/**
	 * Devuelve la representación del objeto: la pila entera.
	 */
	@Override
	public String toString() {
		String contenido= this.opand.show();
		return "Contenido: \n"+contenido;
	}

}